package utils

import (
	"fmt"
	"os"
	"path/filepath"
	"strconv"
)

// StringToUint8 string 转 uin8
func StringToUint8(str string) (uint8, error) {
	// 使用 strconv.ParseUint 将 string 转换为 uint64
	num, err := strconv.ParseUint(str, 10, 8)
	if err != nil {
		return 0, err
	}

	// 检查是否超过 uint8 的最大值
	if num > 255 {
		return 0, fmt.Errorf("value %d exceeds uint8 max value (255)", num)
	}

	// 将 uint64 转换为 uint8
	return uint8(num), nil
}
func ToString(v any) (string, bool) {
	str, ok := v.(string)
	return str, ok
}

// DeleteAvatar 删除头像
func DeleteAvatar(avatar string) error {
	filePath := filepath.Join("./uploads/avatar/", avatar)
	// 检查文件是否存在
	if _, err := os.Stat(filePath); os.IsNotExist(err) {
		return err
	}
	err := os.Remove(filePath)
	if err != nil {
		return err
	}
	return nil
}
